home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / catD / copyb.z / copyb
Encoding:
Text File  |  1998-10-30  |  11.2 KB  |  131 lines

  1.  
  2.  
  3.  
  4. ccccooooppppyyyybbbb((((DDDD3333))))                                                            ccccooooppppyyyybbbb((((DDDD3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _cccc_oooo_pppp_yyyy_bbbb - copy a message block
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>>
  13.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>>
  14.      _mmmm_bbbb_llll_kkkk______tttt _****_cccc_oooo_pppp_yyyy_bbbb_((((_mmmm_bbbb_llll_kkkk______tttt _****_b_p_))))_;;;;
  15.  
  16.    AAAArrrrgggguuuummmmeeeennnnttttssss
  17.      _b_p        Pointer to the message block from which data are copied.
  18.  
  19. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  20.      _cccc_oooo_pppp_yyyy_bbbb allocates a new message block, and copies into it the data from the
  21.      block pointed to by _b_p.  The new block will be at least as large as the
  22.      block being copied.  The _bbbb______rrrr_pppp_tttt_rrrr and _bbbb______wwww_pppp_tttt_rrrr members of the message block
  23.      pointed to by _b_p are used to determine how many bytes to copy.
  24.  
  25.    RRRReeeettttuuuurrrrnnnn VVVVaaaalllluuuueeeessss
  26.      On success, _cccc_oooo_pppp_yyyy_bbbb returns a pointer to the newly allocated message block
  27.      containing the copied data.  On failure, it returns a _NNNN_UUUU_LLLL_LLLL pointer.
  28.  
  29. UUUUSSSSAAAAGGGGEEEE
  30.    LLLLeeeevvvveeeellll
  31.      Base or Interrupt.
  32.  
  33.    SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn CCCCoooonnnnssssttttrrrraaaaiiiinnnnttttssss
  34.      Does not sleep.
  35.  
  36.      Driver-defined basic locks, read/write locks, and sleep locks may be held
  37.      across calls to this function.
  38.  
  39.    EEEExxxxaaaammmmpppplllleeee
  40.      This example illustrates how _cccc_oooo_pppp_yyyy_bbbb can be used during message
  41.      retransmission.  If there are no messages to retransmit, we return (line
  42.      18).  For each retransmission record in the list, we test to see if the
  43.      downstream queue is full with the _cccc_aaaa_nnnn_pppp_uuuu_tttt(D3) function (line 21).  If it
  44.      is full, we skip the current retransmission record and continue searching
  45.      the list.  If it is not full, we use _cccc_oooo_pppp_yyyy_bbbb(D3) to copy a header message
  46.      block (line 25), and _dddd_uuuu_pppp_mmmm_ssss_gggg(D3) to duplicate the data to be retransmitted
  47.      (line 28).  If either operation fails, we clean up and break out of the
  48.      loop.
  49.  
  50.      Otherwise, we update the new header block with the correct destination
  51.      address (line 34), link the message to be retransmitted to it (line 35),
  52.      and send it downstream (line 36).  At the end of the list, we reschedule
  53.      a _iiii_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt at the next valid interval (line 39) and return.
  54.  
  55.       _1111  _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss _{{{{
  56.       _2222   _mmmm_bbbb_llll_kkkk______tttt         _****_rrrr______mmmm_pppp_;;;;       _////_**** _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _tttt_oooo _rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_tttt _****_////
  57.       _3333   _llll_oooo_nnnn_gggg            _rrrr______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss_;;;;  _////_**** _dddd_eeee_ssss_tttt_iiii_nnnn_aaaa_tttt_iiii_oooo_nnnn _aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _****_////
  58.       _4444   _qqqq_uuuu_eeee_uuuu_eeee______tttt        _****_rrrr______oooo_uuuu_tttt_qqqq_;;;;     _////_**** _oooo_uuuu_tttt_pppp_uuuu_tttt _qqqq_uuuu_eeee_uuuu_eeee _****_////
  59.       _5555   _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss  _****_rrrr______nnnn_eeee_xxxx_tttt_;;;;     _////_**** _nnnn_eeee_xxxx_tttt _rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_ssss_ssss_iiii_oooo_nnnn _****_////
  60.  
  61.  
  62.                                                                         PPPPaaaaggggeeee 1111
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. ccccooooppppyyyybbbb((((DDDD3333))))                                                            ccccooooppppyyyybbbb((((DDDD3333))))
  70.  
  71.  
  72.  
  73.       _6666  _}}}}_;;;;
  74.       _7777  _ssss_tttt_rrrr_uuuu_cccc_tttt _pppp_rrrr_oooo_tttt_oooo_hhhh_eeee_aaaa_dddd_eeee_rrrr _{{{{
  75.       _8888   _llll_oooo_nnnn_gggg            _hhhh______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss_;;;;  _////_**** _dddd_eeee_ssss_tttt_iiii_nnnn_aaaa_tttt_iiii_oooo_nnnn _aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _****_////
  76.           _...._...._....
  77.       _9999  _}}}}_;;;;
  78.      _1111_0000  _mmmm_bbbb_llll_kkkk______tttt _****_hhhh_eeee_aaaa_dddd_eeee_rrrr_;;;;
  79.      _1111_1111  _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss _****_rrrr_llll_iiii_ssss_tttt_;;;;
  80.          _...._...._....
  81.      _1111_2222  _rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_tttt_((((_))))
  82.      _1111_3333  _{{{{
  83.      _1111_4444   _mmmm_bbbb_llll_kkkk______tttt _****_bbbb_pppp_,,,, _****_mmmm_pppp_;;;;
  84.      _1111_5555   _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss _****_rrrr_pppp_;;;;
  85.      _1111_6666   _ssss_tttt_rrrr_uuuu_cccc_tttt _pppp_rrrr_oooo_tttt_oooo_hhhh_eeee_aaaa_dddd_eeee_rrrr _****_pppp_hhhh_pppp_;;;;
  86.      _1111_7777   _iiii_ffff _((((_!!!!_rrrr_llll_iiii_ssss_tttt_))))
  87.      _1111_8888        _rrrr_eeee_tttt_uuuu_rrrr_nnnn_;;;;
  88.      _1111_9999   _rrrr_pppp _==== _rrrr_llll_iiii_ssss_tttt_;;;;
  89.      _2222_0000   _wwww_hhhh_iiii_llll_eeee _((((_rrrr_pppp_)))) _{{{{
  90.      _2222_1111        _iiii_ffff _((((_!!!!_cccc_aaaa_nnnn_pppp_uuuu_tttt_((((_rrrr_pppp_----_>>>>_rrrr______oooo_uuuu_tttt_qqqq_----_>>>>_qqqq______nnnn_eeee_xxxx_tttt_))))_)))) _{{{{
  91.      _2222_2222             _rrrr_pppp _==== _rrrr_pppp_----_>>>>_rrrr______nnnn_eeee_xxxx_tttt_;;;;
  92.      _2222_3333             _cccc_oooo_nnnn_tttt_iiii_nnnn_uuuu_eeee_;;;;
  93.      _2222_4444        _}}}}
  94.      _2222_5555        _bbbb_pppp _==== _cccc_oooo_pppp_yyyy_bbbb_((((_hhhh_eeee_aaaa_dddd_eeee_rrrr_))))_;;;;
  95.      _2222_6666        _iiii_ffff _((((_bbbb_pppp _====_==== _NNNN_UUUU_LLLL_LLLL_))))
  96.      _2222_7777             _bbbb_rrrr_eeee_aaaa_kkkk_;;;;
  97.      _2222_8888        _mmmm_pppp _==== _dddd_uuuu_pppp_mmmm_ssss_gggg_((((_rrrr_pppp_----_>>>>_rrrr______mmmm_pppp_))))_;;;;
  98.      _2222_9999        _iiii_ffff _((((_mmmm_pppp _====_==== _NNNN_UUUU_LLLL_LLLL_)))) _{{{{
  99.      _3333_0000             _ffff_rrrr_eeee_eeee_bbbb_((((_bbbb_pppp_))))_;;;;
  100.      _3333_1111             _bbbb_rrrr_eeee_aaaa_kkkk_;;;;
  101.      _3333_2222        _}}}}
  102.      _3333_3333        _pppp_hhhh_pppp _==== _((((_ssss_tttt_rrrr_uuuu_cccc_tttt _pppp_rrrr_oooo_tttt_oooo_hhhh_eeee_aaaa_dddd_eeee_rrrr _****_))))_bbbb_pppp_----_>>>>_bbbb______rrrr_pppp_tttt_rrrr_;;;;
  103.      _3333_4444        _pppp_hhhh_pppp_----_>>>>_hhhh______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _==== _rrrr_pppp_----_>>>>_rrrr______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss_;;;;
  104.      _3333_5555        _bbbb_pppp_----_>>>>_bbbb_pppp______cccc_oooo_nnnn_tttt _==== _mmmm_pppp_;;;;
  105.      _3333_6666        _pppp_uuuu_tttt_nnnn_eeee_xxxx_tttt_((((_rrrr_pppp_----_>>>>_rrrr______oooo_uuuu_tttt_qqqq_,,,, _bbbb_pppp_))))_;;;;
  106.      _3333_7777        _rrrr_pppp _==== _rrrr_pppp_----_>>>>_rrrr______nnnn_eeee_xxxx_tttt_;;;;
  107.      _3333_8888   _}}}}
  108.      _3333_9999   _((((_vvvv_oooo_iiii_dddd_)))) _iiii_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt_((((_rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_tttt_,,,, _0000_,,,, _RRRR_EEEE_TTTT_RRRR_NNNN_SSSS______TTTT_IIII_MMMM_EEEE_,,,, _pppp_llll_ssss_tttt_rrrr_))))_;;;;
  109.      _4444_0000  _}}}}
  110. RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
  111.      _aaaa_llll_llll_oooo_cccc_bbbb(D3), _cccc_oooo_pppp_yyyy_mmmm_ssss_gggg(D3), _mmmm_ssss_gggg_bbbb(D4)
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                                                                         PPPPaaaaggggeeee 2222
  127.  
  128.  
  129.  
  130.